package com.dc.commons.base.controller;

import java.util.Date;

import javax.persistence.MappedSuperclass;

import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.springframework.web.bind.WebDataBinder;
import org.springframework.web.bind.annotation.InitBinder;

import com.dc.commons.persistence.embeddable.Data;
import com.dc.commons.persistence.embeddable.Dict;
import com.dc.commons.propertyEditor.DataPropertyEditor;
import com.dc.commons.propertyEditor.DatePropertyEditor;
import com.dc.commons.propertyEditor.DictPropertyEditor;
import com.dc.commons.propertyEditor.StringPropertyEditor;

/*******************************************************************************<P>
 * 文件名: DcBaseController.java <br>
 * 版本: 1.0<br>
 * 描述: Controller 基础类 方便扩展<br>
 * 版权所有: <br>
 * <P>
 * 创建者: 王建栋 <br>
 * 创建日期: 2015年12月14日 下午9:53:03<br>
 * 修改者: <br>
 * 修改日期: <br>
 * 修改说明: <br>
 ******************************************************************************/
@MappedSuperclass
public class DcBaseController {

	protected Logger logger=LoggerFactory.getLogger(getClass());
	
	
	/**
	 * 各种数据绑定
	 */
	@InitBinder
	protected void initBinder(WebDataBinder binder) {
		
		// String类型转换，将所有传递进来的String进行HTML编码，防止XSS攻击
		binder.registerCustomEditor(String.class, new StringPropertyEditor());
		// Date 类型转换
		binder.registerCustomEditor(Date.class, new DatePropertyEditor());
		// 大字段
		binder.registerCustomEditor(Data.class, new DataPropertyEditor());
		// 字典
		binder.registerCustomEditor(Dict.class, new DictPropertyEditor());
	}
}
